// 输入文字最大的个数
const MAX_WORDS_NUM = 140
// 最大上传图片数量
const MAX_IMG_NUM = 9

const db = wx.cloud.database()
// 输入的文字内容
let content = ''
let userInfo = {}
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 输入的文字个数
    wordsNum: 0,
    footerBottom: 0,
    images: [],
    selectPhoto: true, // 添加图片元素是否显示
    show: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // console.log(options)
    userInfo = options

    db.collection('on-off').get().then((res)=> {
      this.setData({
        show: res.data[0].show
      })
    })
  },
  onInput(event) {
    // console.log(event.detail.value)
    let wordsNum = event.detail.value.length
    if (wordsNum >= MAX_WORDS_NUM) {
      wordsNum = `最大字数为${MAX_WORDS_NUM}`
    }
    this.setData({
      wordsNum
    })
    content = event.detail.value
  },

  onFocus(event) {
    // 模拟器获取的键盘高度为0
    // console.log(event)
    this.setData({
      footerBottom: event.detail.height,
    })
  },
  onBlur() {
    this.setData({
      footerBottom: 0,
    })
  },

  onChooseImage() {
    // 还能再选几张图片
    let max = MAX_IMG_NUM - this.data.images.length
    wx.chooseImage({
      count: max,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        // console.log(res)
        this.setData({
          images: this.data.images.concat(res.tempFilePaths)
        })
        // 还能再选几张图片
        max = MAX_IMG_NUM - this.data.images.length
        this.setData({
          selectPhoto: max <= 0 ? false : true
        })
      },
    })
  },

  onDelImage(event) {
    this.data.images.splice(event.target.dataset.index, 1)
    this.setData({
      images: this.data.images
    })
    if (this.data.images.length == MAX_IMG_NUM - 1) {
      this.setData({
        selectPhoto: true,
      })
    }
  },

  onPreviewImage(event) {
    // 6/9
    wx.previewImage({
      urls: this.data.images,
      current: event.target.dataset.imgsrc,
    })
  },

  send() {
    if (content.trim() === '') {
      wx.showModal({
        title: '请输入内容',
        content: '',
      })
      return
    }

    wx.showLoading({
      title: '发布中',
      mask: true,
    })

    //过滤敏感词

    wx.cloud.callFunction({
      name: "msgSC",
      data: {
        content
      }
    }).then((res)=> {
      if (res.result.code == 200) {
        let promiseArr = []
        let fileIds = []
          // 图片上传
        for (let i = 0, len = this.data.images.length; i < len; i++) {
          let p = new Promise((resolve, reject) => {
            let item = this.data.images[i]
            // 文件扩展名
            let suffix = /\.\w+$/.exec(item)[0]
            wx.cloud.uploadFile({
              cloudPath: 'blog/' + Date.now() + '-' + Math.random() * 1000000 + suffix,
              filePath: item,
              success: (res) => {
                // console.log(res.fileID)
                fileIds = fileIds.concat(res.fileID)
                resolve()
              },
              fail: (err) => {
                // console.error(err)
                reject()
              }
            })
          })
          promiseArr.push(p)
        }
        // 存入到云数据库
        Promise.all(promiseArr).then((res) => {
          db.collection('blog').add({
            data: {
              ...userInfo,
              content,
              img: fileIds,
              createTime: db.serverDate(), // 服务端的时间
            }
          }).then((res) => {
            wx.hideLoading()
            wx.showToast({
              title: '发布成功',
            })
  
            // 返回blog页面，并且刷新
            wx.navigateBack()
            const pages = getCurrentPages()
            // console.log(pages)
            // 取到上一个页面
            const prevPage = pages[pages.length - 2]
            prevPage.onPullDownRefresh()
          })
        }).catch((err) => {
          wx.hideLoading()
          wx.showToast({
            title: '发布失败',
          })
        })
      } else {
        wx.hideLoading()
        wx.showModal({
          title: '发布的内容含有违法违规内容',
          content: '',
        })
      }
      
    })



    

    
    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})